/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.folha.dao;

import br.com.folha.entity.Usuario;
import br.com.folha.utilidades.HibernateUtil;
import java.io.Serializable;
import java.util.List;
import javax.persistence.NoResultException;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;

/**
 *
 * @author marceloml
 */
public class UsuarioDao extends GenericoDao implements Serializable{
    
    private static final long serialVersionUID = 1L;
        
    public Usuario consultaUsuario(String login) {
        Session sessao = HibernateUtil.getSessionFactory();
        Usuario resultado;
        Query query  = sessao.createQuery("from Usuario where login=:plogin");
        query.setParameter("plogin",login);
            try{
             resultado=(Usuario)   query.uniqueResult();
            }catch(NoResultException e){
                resultado=null;
            }finally{
                sessao.close();
            }
            return resultado;       
    }   
    
    public int consultaLogin(String login) {
        Session sessao = HibernateUtil.getSessionFactory();
        int resultado;
        Query query  = sessao.createQuery("from Usuario where login=:plogin");
        query.setParameter("plogin",login);
            try{
             resultado= query.list().size();
            }catch(NoResultException e){
                resultado=0;
            }finally{
                sessao.close();
            }
            return resultado;       
    } 
    
    public List<Usuario> consultaAdm() {
        Session sessao = HibernateUtil.getSessionFactory();
        List resultado;
        Criteria criteria = sessao.createCriteria(Usuario.class);                
        criteria.add(Restrictions.eq("grupo", 2));
                                    
        resultado = criteria.list();
            
        sessao.close();
            
        return resultado;       
    }     
    
}
